using System;
using Randomize.Core.Generators;

namespace Randomize.Core.Descriptors
{
    public interface IGenerationDescriptor<TGenerate, TDescriptor> : IGenerationDescriptor<TGenerate> where TDescriptor : IGenerationDescriptor<TGenerate, TDescriptor>
    {
        TDescriptor WithPool(TGenerate[] pool);
    }

    public interface IGenerationDescriptor<TGenerate>
    {
        IGenerator<TGenerate> CreateGenerator(Random random);
    }
}